'use strict';

var BaseController = require('./base.js');

class LoginController extends BaseController {
    
    // 登录页面
    async index() {
        await this.ctx.render('admin/login')
    }

    // 登录方法
    async doLogin() {
        // console.log(this.ctx.request.body);
        //await this.success('/admin/login');
        /* 
            0. 首先在前端判断用户输入的信息是否正确
            1. 获取表单提交的数据
            2. 判断验证码是否正确
                验证码正确
                    1. 要对表单里面的密码进行md5加密
                    2. 要在用户表(集合)中查询当前用户是否存在
                    3. 如果数据库有此用户(登录成功), 则保存用户信息 跳转到后台管理系统
                    4. 如果数据库中没有此用户(登录失败), 跳转到登录页面
                验证码错误
                    跳转到登录页面，提示验证码不正确
        */

        var username = this.ctx.request.body.username;
        var password = await this.service.tools.md5(this.ctx.request.body.password);
        var code = this.ctx.request.body.verify;
        
        if (code.toUpperCase() == this.ctx.session.code.toUpperCase()) {
            var result = await this.ctx.model.Admin.find({"username": username, "password": password});

            if (result.length>0) {
                // 登录成功
                this.ctx.session.userinfo = result[0];
                this.ctx.redirect('/admin');
            } else {
                await this.error('/admin/login', '用户名或密码错误')
            }
        } else {
            await this.error('/admin/login', '验证码错误')
        }
    }

    // 退出登录
    async loginOut() {
        this.ctx.session.userinfo = null;
        this.ctx.redirect('/admin/login');
    }
}

module.exports = LoginController;
